Matlab Codes

Chapter 4

Matlab code 4.1: Matlab file “Figure 4-2.m”

%--------------------------------------------------------------------

% This code can be used to generate Figure 4.2

%--------------------------------------------------------------------

 

clear all;

close all;

%% the time-varying and no time-varying micro-Doppler frequency curves(narrow band bistatic radar)

c = 3e8;

j = sqrt(-1);

fc = 6e9; % carrier frequency

radt = [0 0 0]; % coordinates of transmitter

radr = [7000 0 0]; % coordinates of receiver

cord = 1000*[3 4 5]; % coordinates of target centre in the world coordinate system

w = 5*pi*[1 2 1]; % angular velocity

r0 = [0.2 0.2 -0.6]; % coordinates of the scatterer in the reference coordinate system

ae = pi*[1/3 1/4 1/5]; % Euler angle

ri1 = [cos(ae(3)) sin(ae(3)) 0;-sin(ae(3)) cos(ae(3)) 0;0 0 1];

ri2 = [1 0 0;0 cos(ae(2)) sin(ae(2));0 -sin(ae(2)) cos(ae(2))];

ri3 = [cos(ae(1)) sin(ae(1)) 0;-sin(ae(1)) cos(ae(1)) 0;0 0 1];

ri = ri1*ri2*ri3; % initial rotation matrix

t = 0.5; % radar illumimated time

v = 150*[1 1 1]; % translational velocity of target

prf = 1000; % pulse repetition frequency

pri = 1/prf; % pulse repetition interval

dt = 0:pri:t-pri; % time sampling interval

m = length(dt);

nb0 = (radt-cord)/sqrt(sum((radt-cord).^2))+(radr-cord)/sqrt(sum((radr-cord).^2));

nbt = zeros(length(r0),m);

for i = 1:m

    nbt(:,i) = ((radt-cord)+v*dt(i))/sqrt(sum(((radt-cord)+v*dt(i)).^2))...

              +((radr-cord)+v*dt(i))/sqrt(sum(((radr-cord)+v*dt(i)).^2));

end

tn = length(w);

r0r = r0'; % scatterer in the reference coordinate system

w = ri*w'; % angular velocity in the reference coordinate system

omega = sqrt(sum(w.^2)); % angular freuency

we = w/omega; % unit vector

wr = [0 -we(3) we(2);we(3) 0 -we(1);-we(2) we(1) 0]; % skew symmetric matrix

fmd0 = zeros(tn,m); % micro-Doppler frequency when no time-varying

fmdt = zeros(tn,m); % micro-Doppler frequency when time-varying

for i = 1:m

    fmd0(:,i) = (omega*fc/c)*(wr*(wr*sin(omega*dt(i))+eye(3)*cos(omega*dt(i)))*r0r)'*nb0';

    fmdt(:,i) = (omega*fc/c)*(wr*(wr*sin(omega*dt(i))+eye(3)*cos(omega*dt(i)))*r0r)'*nbt(:,i);

end

figure

plot(dt,fmd0,'or')

hold on

plot(dt,fmdt,'-b')

legend('time-varying ','no time-varying ');

xlabel('Time (s)')

ylabel('Frequency (Hz)')

axis([0,0.5,-1200,1200])